1. Field of the Disclosure
The present invention relates generally to artificial neural networks and, more particularly, to the design and evaluation of artificial neural networks.
2. Brief Description of Related Technology
Recent advances in artificial intelligence and other fields have benefited from the problem solving capabilities of artificial neural networks in such areas as pattern recognition, association and classification. Artificial neural networks have also been relied upon in applications such as forecast studies, parameter identification and process control, to name but a few. Indeed, the wide range of applications enabled by artificial neural networks has not been limited to a few, specialized contexts, but rather expanded from areas like industrial equipment into a number of commercial products like automobiles and household appliances.
Artificial neural network theory can only be efficiently applied to practical problems with the use of computers. Various programming tools have therefore been developed and put in use in university, industry, or other settings to design or create the artificial neural networks later put into practice.
Despite the wide and advantageous use of artificial neural networks in artificial intelligence and other fields, the programming tools available for designing artificial neural networks are limited either in functionality, user friendliness, or both. Efforts to provide user friendly tools may be complicated by aspects of artificial neural network theory itself, including, for instance, the complex mathematics involved. Nonetheless, past programming tools often complicate the process further by requiring programming in proprietary script or other languages. The user must accordingly first master the programming language before even beginning the work toward programming (or designing) the artificial neural network. Such requirements and other non-user friendly details may then obscure aspects and features of artificial neural networks to the user in training, as well as frustrate implementation and use for more experienced users.
The data processing requirements of artificial neural networks have likely been another source of complications for academic and other efforts to design artificial neural networks. More specifically, a considerable amount of data often needs to be processed to train an artificial neural network. Academic and other efforts that would benefit from observation and analysis of the processing steps directed toward one network, and preferably many networks, may be impeded by difficulties arising from the creation, handling and processing of the training data. In fact, the inability to teach students with examples has limited the usefulness of current artificial neural network software design solutions. Thus, the entry, handling and other processing of the data sets have acted as a barrier against effective teaching of network theory.
One widely used artificial neural network programming tool is provided as a toolbox within the MATLAB software package available from The MathWorks, Inc. (Natick, Mass., www.mathworks.com). Unfortunately, knowledge of MATLAB's script language is generally required in order to access the full suite of programming options and features of the toolbox. Making matters worse, the user is forced to enter the script language instructions via a command line. Thus, the design and other programming of artificial neural networks is at times inconvenient and slow, even when the scripting language may be familiar to the user.
The MATLAB toolbox also provides a network/data manager to support the implementation of certain programming tasks outside of the command line. Unfortunately, the network/data manager does not present or support all of the functionality available via the toolbox, thereby forcing the user to utilize the command line at times. As a result, the network/data manager is primarily useful as a preliminary interface for users designing networks and data sets of relatively low complexity.
More generally, the artificial neural network programming tools commercially available for use in research, industry or education often fail to provide comprehensive coverage of the artificial neural network field in the sense that, for instance, not all network types are supported or, for those types that are supported, the designs are limited due to the absence of design options, training features, etc. For example, ALNfit Pro, a software tool available from Dendronic Decisions Ltd. (Edmonton, Alberta, www.dendronic.com), generally supports one network type, an adaptive logic network (ALN), that utilizes a single type of multilayer perceptron, or feedforward network, for application only to Boolean function-based computations. Moreover, the graphical user interface generated by ALNfit Pro provides a limited number of options for configuration and training. The programming interface provided by Attrasoft, Inc. (Savannah, Ga., attrasoft.com), and its Attrasoft Boltzmann Machines (ABM) software, is similarly limited, insofar as the software supports only two network types, the Hopfield Model and the Boltzmann Model.